Android 编译优化系列-kapt篇
作者:字节跳动终端技术———王龙海 封光 兰军健一、背景本文是编译优化系列文章之 kapt 优化篇,后续还会有 build cache, kotlin, dex 优化等文章,敬请期待。本文由Client Infra->Build Infra团队出品,powered by 王龙海,封光,兰军健相信 android 开发对于 kapt 并不陌生,之前也有很多文章在编译优化过程中谈及...
2024-01-10【安卓】Android Jetpack架构组件(十二)之Hilt
一、 依赖注入简介依赖注入(英文Dependency Injection,简写DI)是一种被广泛使用的编程技术,主要的作用代码解耦。 借助依赖注入,我们可以轻松的管理类之间的依赖,并最终建立高可维护性和可扩展性的应用代码。事实上,依赖注入并不是一项新技术,它在Java的Spring框架中早有应用,记得0x年上大...
2024-01-10如何从Android调用JavaScript?
我们如何从Android调用javascript?我有一个我想使用的javascript库,我想调用javascript函数并将结果值传递给androidjava代码。从现在开始还没有找到答案。我设法从javascript调用android代码,但我想反过来。回答:有一个hack:绑定一些Java对象,以便可以使用WebView从Javascript调用它:addJavascriptInterface(javaObject...
2024-01-10Android发布项目到jitpack的完整步骤
前提最近因公司需要写了一个sdk,本想用本地库去做,但是遇到了各种问题,所以尝试着做成网络库去接入。之前一直没接触过这块,相对来说挺简单,但是也遇到了一些问题,在这里记录一下。首先在开始之前先简单说一下流程:1、在本地创建一个libiary工具类;2、配置JitPack相关的配置信息...
2024-01-10Android Bitmap像素级操作详解
一:什么是Bitmap像素级的操作相信大家都知道一张jpg或png放大后会是一个个小格子,称为一个像素(px),而且一个小格子是一种颜色,也就是一张jpg或png图片就是很多颜色的合集,而这些合集信息都被封装到了Bitmap类中。你可以使用Bitmap获取任意像素点,并修改它,对与某像素点而言,颜色信息是其主要...
2024-01-10Android中socket通信的简单实现
Android中socket通信简单实现,供大家参考,具体内容如下socket通信需要有一个服务器和客户端,可以把同一个APP作为服务器跟客户端,也可以分开成两个APP。先上个图:这里以一个APP作为服务器跟客户端为示例1、添加网络访问权限<uses-permission android:name="android.permission.INTERNET" />2、写服务器,在APP...
2024-01-10Android SeekBar实现禁止滑动
本文实例为大家分享了Android SeekBar实现禁止滑动的具体代码,供大家参考,具体内容如下由于项目需要,在关闭开关的时候需要将顶部的调温栏禁用,变为灰色且不可点击滑动,而开的时候要启用,变为黄色且可点击滑动为防止抓不住重点,仅展示相关代码public class DeviceControlActivity extends Activity im...
2024-01-10Android SeekBar实现滑动条效果
本文实例为大家分享了Android SeekBar实现滑动条效果的具体代码,供大家参考,具体内容如下SeekBar是ProgressBar的一个子类,下面我们用一个可以改变并显示当前进度的拖动条例子来演示一下它的使用:1、main.xml<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" andr...
2024-01-10如何在Android 中实现scp操作
目录SSHSCPSFTPAndroid中使用SCPSFTP 删除文件本文简单介绍用SSH库ganymed-ssh2在Android中实现scp操作。SSHSSH是专为远程登录会话和其他网络服务提供安全性的协议,简单的说就是一种网络协议。是linux的标准配置。用于linux设备之间的通讯。SCPSCP是一种基于SSH完成加密拷贝文件的协议。使用SSH进行身份认证确...
2024-01-10Android 基于Socket的聊天应用实例(二)
前言很久没写BLOG了,之前在写Android聊天室的时候答应过要写一个客户(好友)之间的聊天demo,Android 基于Socket的聊天室已经实现了通过Socket广播形式的通信功能。以下是我写的一个类似现在多数聊天软件的冒泡聊天APP。全部功能都是自己的想法,对于现在市面上成功的例子是怎么实现的,我还不了...
2024-01-10【安卓】Android Socket与HTTPS校验
在Android中使用HTTPS的场景比较频繁,所以对于HTTPS的证书应该如何校验呢?关于HTTPS的校验原理可以参考我之前写的一篇文章:《 HTTPS协议实现原理 》,相信看完后应该对HTTPS有一个比较大致的了解。而且对HTTP(s)请求的工具进行了封装,需要体会这种封装工具类的思路,也就是编码中常见的Listener机制。...
2024-01-10Android BadTokenException异常解决案例详解
目录解决办法1解决方法2总结线上出现了如上的 crash,第一解决反应是在 show dialog 之前做个 isFinish 和 isDestroyed 判断,当我翻开代码正要解决时,我惊了,原来已经做过了如上的判断检测,示例伪代码如下:public void showDialog(Activity activity){ new OkHttp().call(new Callback(){ void onSucess(Response resp){ ...
2024-01-10【安卓】Android Jetpack架构组件(五)之Navigation
一、 Navigation简介1.1 Navigation诞生背景采用单个Activity嵌套多个Fragment的UI架构模式,已经被大多数的Android工程师所接受。但是,对于Fragment的管理一直是一件比较麻烦的事情,工程师需要通过FragmentManager和FragmentTransaction来管理Fragment之间的切换。在Android中,页面的切换和管理包括应用程序Appbar的管理...
2024-01-10如何在Android中使用Facebook API登出
我正在使用Facebook开发人员指南为Android使用Facebook API。我能够为Android的FacebookAPI实现登录。我想实现注销功能。我尝试按照开发人员指南进行操作,但是不知道我必须在哪个位置实施。如果您能帮助我,下面将提供代码,我将不胜感激。public class FacebookandroidsdkActivity extends Activity { /** Called when the act...
2024-01-10使用Android WebSocket实现即时通讯功能
最近做这个功能,分享一下。即时通讯(Instant Messaging)最重要的毫无疑问就是即时,不能有明显的延迟,要实现IM的功能其实并不难,目前有很多第三方,比如极光的JMessage,都比较容易实现。但是如果项目有特殊要求(如不能使用外网),那就得自己做了,所以我们需要使用WebSocket。WebSocketWebSocket...
2024-01-10Android apk无法安装及闪退问题解决办法
Android apk无法安装及闪退问题app在部分手机上(低版本)打不开或打开就闪退的问题之前做项目集成的是 环信的sdk ,环信的sdk 确实很好,客服 也很给力。但是在集成的过程中发现,apk 在手机上发布不了,要么就是,安装了 打不开,打开就闪退:问题有一下两方面1.之前做过一个环信的即时通讯,集成...
2024-01-10Android原生页面A与React页面相互跳转
最近需要预研一下 将React 代码打个aar包供给android 项目使用,由于牵扯到页面跳转,所以首先得实现Android原生页面即Activity 跳转到React的 js页面。 这里简单的记一下一,Activity跳转到React 页面创建一个react native 项目,这个很简单用android studio在对应的android 中创建一个类LaunchActivity,作为我们项目的...
2024-01-10Android开发之Socket通信传输简单示例
本文实例讲述了Android Socket通信传输实现方法。分享给大家供大家参考,具体如下:1.开篇简介Socket本质上就是Java封装了传输层上的TCP协议(注:UDP用的是DatagramSocket类)。要实现Socket的传输,需要构建客户端和服务器端。另外,传输的数据可以是字符串和字节。字符串传输主要用于简单的应用,比较...
2024-01-10Android weex混合activity中跳转的问题
请输入代码新项目用weex开发,小菜鸟第一次接触这个东西,在做页面跳转时出了问题:项目中写了多个原生的activity,可以从js页面跳转,manifest中activity节点如何添加intent-filter才能正确识别该跳转哪个页面呢?这是manifest中的activity ,MainActivity已经配置了 intent-filter,SelectCityActivity中如果也配置了Main...
2024-01-10Jenkins Copy Artifact解析复制的内部版本ID
我在Jenkins 2.73.1中的多分支管道“复制工件插件”中使用,以从其他两个管道中获得最后成功的工件,请参阅我的Jenkinsfile:def branchname = "${BRANCH_NAME}".replace("/", "%2F")pipeline { agent { label 'windows' } stages { stage('get artifacts') { steps { script { parallel('get-...
2024-01-10【Java】Android Jetpack架构组件(八)之DataBinding
一、DataBinding简介在传统的Android应用开发中,布局文件通常只负责应用界面的布局工作,如果需要实现页面交互就需要调用setContentView()将Activity、fragment和XML布局文件关联起来。然后通过控件的id找到控件,接着在页面中通过代码对控件进行逻辑处理。在这种传统的开发方式中,页面承担了大部分的工...
2024-01-10【安卓】使用 Jetpack Security 在 Android 上进行数据加密
作者 / Jon Markoff, Staff Developer Advocate, Android Security您是否尝试过对应用中的数据进行加密?作为开发者,您想要保护数据安全,并确保数据掌握在其合理使用者的手中。但是,大多数 Android 开发者没有专门的安全团队来帮助他们正确地加密应用数据。就算通过网络来搜索如何加密数据,您得到的答案也...
2024-01-10BreakIterator如何在Android中工作?
我正在用Android(蒙古语的自定义垂直脚本TextView)制作自己的文本处理器。我以为自己必须找到所有换行位置,以便可以实现换行,但是后来发现BreakIterator。这似乎找到了各种语言中的字符,单词,行和句子之间的所有可能的中断。我正在尝试学习如何使用它。该文档比一般文档更有帮助,但仅通过...
2024-01-10关于Android的 DiskLruCache磁盘缓存机制原理
目录一、为什么用DiskLruCache1、LruCache和DiskLruCache2、为何使用DiskLruCache二、DiskLruCache使用1、添加依赖2、创建DiskLruCache对象3、添加 / 获取 缓存(一对一)4、添加 / 获取 缓存(一对多)三、源码分析1、open()2、rebuildJournal()3、readJournal()4、get()5、validateKey6、trimTOSize()7、journalRebuildRequired()8、save的过程一、为什么...
2024-01-10Android高德地图marker自定义弹框窗口
本文实例为大家分享了Android高德地图marker自定义弹框窗口的具体代码,供大家参考,具体内容如下最终效果:1.gradle里添加高德地图依赖implementation 'com.amap.api:map2d:latest.integration'//2d地图功能 implementation 'com.amap.api:location:latest.integration'//定位功能2.如果要用到定位的话,就首先到高德控制台里面加...
2024-01-10